package com.buffer.gateway.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;

import java.util.HashMap;
import java.util.Map;

/**
 * 熔断降级处理控制器
 */
@RestController
public class FallbackController {
    
    /**
     * 用户服务降级处理
     * @return 降级响应
     */
    @RequestMapping("/fallback/user")
    public Mono<Map<String, Object>> userFallback() {
        Map<String, Object> result = new HashMap<>();
        result.put("code", 503);
        result.put("message", "用户服务暂时不可用，请稍后重试");
        result.put("data", null);
        System.out.println("user 触发熔断策略");
        return Mono.just(result);
    }
    
    /**
     * 订单服务降级处理
     * @return 降级响应
     */
    @RequestMapping("/fallback/order")
    public Mono<Map<String, Object>> orderFallback() {
        Map<String, Object> result = new HashMap<>();
        result.put("code", 503);
        result.put("message", "订单服务暂时不可用 ，请稍后重试");
        result.put("data", null);
        System.out.println("order 触发熔断策略");
        return Mono.just(result);
    }
}